1. Field of the Invention
The present invention relates to testing of computer programs or applications, and more particularly, to a tool for testing application programs of the type that are deployed on a server computer for access by multiple users over a network, such as, for example, World Wide Web applications accessible via the Internet or an intranet.
1. Description of the Prior Art
Developers of application programs that are to be deployed on a network server for concurrent access by Multiple users, such as client/server applications and web-based Internet or intranet applications, need to be able to test the ability of these application programs to operate under significant user loads. For example, a web-based application that is accessible by multiple users, or clients, via the Internet, can become overwhelmed when a large number of clients attempt to access that application concurrently. Prior to deployment, it is desirable to test an application's ability to handle multiple users to make sure that the application will operate correctly and provide acceptable response times under expected user loads.
Subjecting an application program to access by multiple clients to ensure that the application operates properly and provides acceptable response times under such loads is generally referred to as load or stress testing. Stress testing a client/server or web-based application prior to deployment is becoming increasingly important as the number of users of the Internet, and thus the likelihood of heavy user loads, increases. In the past, load testing has been done with real people who concurrently access and test an application manually, noting any errors that are encountered under such conditions. Use of real people to perform stress testing is simply not feasible today, as most web-based applications can expect typical concurrent access by hundreds of users.
Automated testing of single-user application programs is known. U.S. Pat. No. 5,475,843, assigned to Borland International, Inc., for example, describes an automated test tool for testing the graphical user interface features of Microsoft.RTM. Windows.RTM. application programs. Test scenarios are built around Generic Element Models (GEM) that are stored in a library. Each GEM represents the behavior of a basic Microsoft.RTM. Windows.RTM. graphical user interface element, such as a push button, a check box, a list box, or the like. Thus, the Borland tool is Windows.RTM. specific. U.S. Pat. Nos. 5,669,000 and 5,640,537, both assigned to Apple Computer, Inc., describe automated testing techniques for testing the graphical user interface features of single-user Macintosh.RTM. application programs. None of these programs, however, provides the ability to simulate concurrent, multi-user access to a multi-user application program such as a client/server or web-based application program deployed on the Internet or an intranet. Accordingly, these tools are not useful for testing such applications.
Recently, a few vendors have advertised tools that purport to perform stress testing of web applications by simulating multiple user loads on a web site. One such tool, called WebLoad, has been advertised by RadView Software, Ltd. The WebLoad tool can establish multiple connections to a web application and can run "user-defined" test scripts on each connection to simulate user interaction with the web application on those connections. However, the user-defined scripts must be written in a specific programming language, requiring knowledge of that language to generate test scripts. Alternatively, a test script can be generated "automatically" by recording the interaction between a real user and the web application. This offers less flexibility, because the test scripts are dictated by the sequence of recorded events.
Another recently advertised stress testing tool, called Web Hammer, advertised by Hammer Technologies, 226 Lowell Street, Wilmington, Mass. USA 01887, suffers from the same deficiencies as the WebLoad tool, in that test scripts that test the functionality of a web application are written in a complicated programming language. Writing test scripts therefore requires knowledge of the programming language, and modification of scripts requires reprogramming and is time-consuming.
Rational Software Corporation presently advertises two stress testing products, Performix and preVue. However, the only advertised means of creating test scripts in these products is by recording real user interaction with the web application under test. This limits flexibility and makes editing of scripts difficult.
As the foregoing illustrates, none of these products provides a simple, easy way to generate and/or modify a number of different test scripts in a manner that requires little programming expertise. Moreover, while each of these products purports to provide the ability to execute the user interface functions of a web application under test, there is no indication that these products can verify proper execution of these functions, other than by recording errors that might be returned by the web application itself Accordingly, there is a need for a tool for testing multi-user application programs, such as web applications, that enables easy creation and editing of test scripts and that provides enhanced verification of proper execution of the user functions of the application program under test. The present invention satisfies these needs.